<?php

class Arquivo extends CActiveRecord
{
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	public function tableName()
	{
		return 'arquivo';
	}

	public function rules()
	{
		return array(
			array('nome, local, tamanho, id_upload_fk', 'required'),
			array('excluido, id_upload_fk', 'numerical', 'integerOnly'=>true),
			array('tamanho', 'numerical'),
			array('nome, local', 'length', 'max'=>200),
			array('id_arquivo, nome, local, excluido, tamanho, id_upload_fk', 'safe', 'on'=>'search'),
		);
	}

	public function relations()
	{
		return array(
			'idUploadFk' => array(self::BELONGS_TO, 'Upload', 'id_upload_fk'),
		);
	}

	public function attributeLabels()
	{
		return array(
			'id_arquivo' => 'Id Arquivo',
			'nome' => 'Nome',
			'local' => 'Local',
			'excluido' => 'Excluido',
			'tamanho' => 'Tamanho',
			'id_upload_fk' => 'Id Upload Fk',
		);
	}
	
	/*
	public function search()
	{
		$criteria=new CDbCriteria;
		$criteria->compare('id_arquivo',$this->id_arquivo);
		$criteria->compare('nome',$this->nome,true);
		$criteria->compare('local',$this->local,true);
		$criteria->compare('excluido',$this->excluido);
		$criteria->compare('tamanho',$this->tamanho);
		$criteria->compare('id_upload_fk',$this->id_upload_fk);
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
	*/
	
	public function deletar()
	{
		$this->excluido = 1;
		$this->update();
	}
	
	public function buscarArquivos()
	{
		$condicao = ' Arquivo.excluido = 0 ';
		if (trim($this->nome) != "")
			$condicao .= ' AND (Arquivo.nome like "%' . trim($this->nome) . '%") ';
		if (trim($this->categoria) != "")
			$condicao .= ' AND (Arquivo.categoria = "' . $this->categoria . '") ';
		$criteria=new CDbCriteria;
		$criteria->alias = 'Arquivo';
		$criteria->condition = $condicao; 
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
	
	protected function afterFind()
	{
		$this->tamanho = (number_format(($this->tamanho / (1024 * 1024)), 2, '.', '')) . " Mb"; 
		return TRUE;
	}
	
}